home *** CD-ROM | disk | FTP | other *** search
/ Dynamic HTML Construction Kit / Dynamic HTML Construction Kit.iso / earthlink / nscomm / java40.jar / sun / awt / motif / MToolkit.class (.txt) < prev    next >
Encoding:
Java Class File  |  1997-11-03  |  6.6 KB  |  288 lines

  1. package sun.awt.motif;
  2.  
  3. import java.awt.AWTError;
  4. import java.awt.Button;
  5. import java.awt.Canvas;
  6. import java.awt.Checkbox;
  7. import java.awt.CheckboxMenuItem;
  8. import java.awt.Choice;
  9. import java.awt.Component;
  10. import java.awt.Dialog;
  11. import java.awt.Dimension;
  12. import java.awt.FileDialog;
  13. import java.awt.Font;
  14. import java.awt.FontMetrics;
  15. import java.awt.Frame;
  16. import java.awt.Image;
  17. import java.awt.Label;
  18. import java.awt.List;
  19. import java.awt.Menu;
  20. import java.awt.MenuBar;
  21. import java.awt.MenuItem;
  22. import java.awt.Panel;
  23. import java.awt.Scrollbar;
  24. import java.awt.TextArea;
  25. import java.awt.TextField;
  26. import java.awt.Toolkit;
  27. import java.awt.Window;
  28. import java.awt.image.ColorModel;
  29. import java.awt.image.ImageObserver;
  30. import java.awt.image.ImageProducer;
  31. import java.awt.peer.ButtonPeer;
  32. import java.awt.peer.CanvasPeer;
  33. import java.awt.peer.CheckboxMenuItemPeer;
  34. import java.awt.peer.CheckboxPeer;
  35. import java.awt.peer.ChoicePeer;
  36. import java.awt.peer.DialogPeer;
  37. import java.awt.peer.FileDialogPeer;
  38. import java.awt.peer.FramePeer;
  39. import java.awt.peer.LabelPeer;
  40. import java.awt.peer.ListPeer;
  41. import java.awt.peer.MenuBarPeer;
  42. import java.awt.peer.MenuItemPeer;
  43. import java.awt.peer.MenuPeer;
  44. import java.awt.peer.PanelPeer;
  45. import java.awt.peer.ScrollbarPeer;
  46. import java.awt.peer.TextAreaPeer;
  47. import java.awt.peer.TextFieldPeer;
  48. import java.awt.peer.WindowPeer;
  49. import java.net.URL;
  50. import java.util.Hashtable;
  51. import sun.awt.image.ByteArrayImageSource;
  52. import sun.awt.image.FileImageSource;
  53. import sun.awt.image.ImageRepresentation;
  54. import sun.awt.image.URLImageSource;
  55.  
  56. public class MToolkit extends Toolkit implements Runnable {
  57.    static ColorModel screenmodel;
  58.    static Hashtable imgHash;
  59.  
  60.    public MToolkit() {
  61.       this.init();
  62.       (new Thread(this, "AWT-Motif")).start();
  63.    }
  64.  
  65.    public native void init();
  66.  
  67.    public native void run();
  68.  
  69.    public ButtonPeer createButton(Button var1) {
  70.       return new MButtonPeer(var1);
  71.    }
  72.  
  73.    public TextFieldPeer createTextField(TextField var1) {
  74.       return new MTextFieldPeer(var1);
  75.    }
  76.  
  77.    public LabelPeer createLabel(Label var1) {
  78.       return new MLabelPeer(var1);
  79.    }
  80.  
  81.    public ListPeer createList(List var1) {
  82.       return new MListPeer(var1);
  83.    }
  84.  
  85.    public CheckboxPeer createCheckbox(Checkbox var1) {
  86.       return new MCheckboxPeer(var1);
  87.    }
  88.  
  89.    public ScrollbarPeer createScrollbar(Scrollbar var1) {
  90.       return new MScrollbarPeer(var1);
  91.    }
  92.  
  93.    public TextAreaPeer createTextArea(TextArea var1) {
  94.       return new MTextAreaPeer(var1);
  95.    }
  96.  
  97.    public ChoicePeer createChoice(Choice var1) {
  98.       return new MTinyChoicePeer(var1);
  99.    }
  100.  
  101.    public FramePeer createFrame(Frame var1) {
  102.       return new MFramePeer(var1);
  103.    }
  104.  
  105.    public CanvasPeer createCanvas(Canvas var1) {
  106.       return new MCanvasPeer(var1);
  107.    }
  108.  
  109.    public PanelPeer createPanel(Panel var1) {
  110.       return new MPanelPeer(var1);
  111.    }
  112.  
  113.    public WindowPeer createWindow(Window var1) {
  114.       if (var1 != null && ((Component)var1).getParent() != null && ((Component)var1).getParent().getPeer() == null) {
  115.          ((Component)var1).getParent().addNotify();
  116.       }
  117.  
  118.       return new MWindowPeer(var1);
  119.    }
  120.  
  121.    public DialogPeer createDialog(Dialog var1) {
  122.       if (var1 != null && ((Component)var1).getParent() != null && ((Component)var1).getParent().getPeer() == null) {
  123.          ((Component)var1).getParent().addNotify();
  124.       }
  125.  
  126.       return new MDialogPeer(var1);
  127.    }
  128.  
  129.    public FileDialogPeer createFileDialog(FileDialog var1) {
  130.       throw new AWTError("FileDialog is unimplemented.");
  131.    }
  132.  
  133.    public MenuBarPeer createMenuBar(MenuBar var1) {
  134.       return new MMenuBarPeer(var1);
  135.    }
  136.  
  137.    public MenuPeer createMenu(Menu var1) {
  138.       return new MMenuPeer(var1);
  139.    }
  140.  
  141.    public MenuItemPeer createMenuItem(MenuItem var1) {
  142.       return new MMenuItemPeer(var1);
  143.    }
  144.  
  145.    public CheckboxMenuItemPeer createCheckboxMenuItem(CheckboxMenuItem var1) {
  146.       return new MCheckboxMenuItemPeer(var1);
  147.    }
  148.  
  149.    public Dimension getScreenSize() {
  150.       return new Dimension(this.getScreenWidth(), this.getScreenHeight());
  151.    }
  152.  
  153.    static native ColorModel makeColorModel();
  154.  
  155.    static ColorModel getStaticColorModel() {
  156.       if (screenmodel == null) {
  157.          screenmodel = makeColorModel();
  158.       }
  159.  
  160.       return screenmodel;
  161.    }
  162.  
  163.    public ColorModel getColorModel() {
  164.       return getStaticColorModel();
  165.    }
  166.  
  167.    public native int getScreenResolution();
  168.  
  169.    native int getScreenWidth();
  170.  
  171.    native int getScreenHeight();
  172.  
  173.    public String[] getFontList() {
  174.       String[] var1 = new String[]{"Dialog", "Helvetica", "TimesRoman", "Courier", "Symbol"};
  175.       return var1;
  176.    }
  177.  
  178.    public FontMetrics getFontMetrics(Font var1) {
  179.       return X11FontMetrics.getFontMetrics(var1);
  180.    }
  181.  
  182.    public native void sync();
  183.  
  184.    static synchronized Image getImageFromHash(Toolkit var0, URL var1) {
  185.       System.getSecurityManager().checkURLConnect(var1);
  186.       Image var2 = (Image)imgHash.get(var1);
  187.       if (var2 == null) {
  188.          try {
  189.             var2 = var0.createImage(new URLImageSource(var1));
  190.             imgHash.put(var1, var2);
  191.          } catch (Exception var3) {
  192.          }
  193.       }
  194.  
  195.       return var2;
  196.    }
  197.  
  198.    static synchronized Image getImageFromHash(Toolkit var0, String var1) {
  199.       System.getSecurityManager().checkRead(var1);
  200.       Image var2 = (Image)imgHash.get(var1);
  201.       if (var2 == null) {
  202.          try {
  203.             var2 = var0.createImage(new FileImageSource(var1));
  204.             imgHash.put(var1, var2);
  205.          } catch (Exception var3) {
  206.          }
  207.       }
  208.  
  209.       return var2;
  210.    }
  211.  
  212.    public Image getImage(String var1) {
  213.       return getImageFromHash(this, (String)var1);
  214.    }
  215.  
  216.    public Image getImage(URL var1) {
  217.       return getImageFromHash(this, (URL)var1);
  218.    }
  219.  
  220.    static boolean prepareScrImage(Image var0, int var1, int var2, ImageObserver var3) {
  221.       if (var1 != 0 && var2 != 0) {
  222.          X11Image var4 = (X11Image)var0;
  223.          if (((sun.awt.image.Image)var4).hasError()) {
  224.             if (var3 != null) {
  225.                var3.imageUpdate(var0, 192, -1, -1, -1, -1);
  226.             }
  227.  
  228.             return false;
  229.          } else {
  230.             if (var1 < 0) {
  231.                var1 = -1;
  232.             }
  233.  
  234.             if (var2 < 0) {
  235.                var2 = -1;
  236.             }
  237.  
  238.             ImageRepresentation var5 = var4.getImageRep(var1, var2);
  239.             return var5.prepare(var3);
  240.          }
  241.       } else {
  242.          return true;
  243.       }
  244.    }
  245.  
  246.    static int checkScrImage(Image var0, int var1, int var2, ImageObserver var3) {
  247.       X11Image var4 = (X11Image)var0;
  248.       int var5;
  249.       if (var1 != 0 && var2 != 0) {
  250.          if (var1 < 0) {
  251.             var1 = -1;
  252.          }
  253.  
  254.          if (var2 < 0) {
  255.             var2 = -1;
  256.          }
  257.  
  258.          var5 = var4.getImageRep(var1, var2).check(var3);
  259.       } else {
  260.          var5 = 32;
  261.       }
  262.  
  263.       return ((sun.awt.image.Image)var4).check(var3) | var5;
  264.    }
  265.  
  266.    public int checkImage(Image var1, int var2, int var3, ImageObserver var4) {
  267.       return checkScrImage(var1, var2, var3, var4);
  268.    }
  269.  
  270.    public boolean prepareImage(Image var1, int var2, int var3, ImageObserver var4) {
  271.       return prepareScrImage(var1, var2, var3, var4);
  272.    }
  273.  
  274.    public Image createImage(ImageProducer var1) {
  275.       return new X11Image(var1);
  276.    }
  277.  
  278.    public Image createImage(byte[] var1, int var2, int var3) {
  279.       return this.createImage(new ByteArrayImageSource(var1, var2, var3));
  280.    }
  281.  
  282.    static {
  283.       SecurityManager.enablePrivilege("UniversalLinkAccess");
  284.       System.loadLibrary("awt");
  285.       imgHash = new Hashtable();
  286.    }
  287. }
  288.